package cn.tedu.ximart.server.service.impl;

import cn.tedu.ximart.server.ex.ServiceException;
import cn.tedu.ximart.server.mapper.AttributeTemplateMapper;
import cn.tedu.ximart.server.pojo.dto.AttributeTemplateAddNewDTO;
import cn.tedu.ximart.server.pojo.entity.AttributeTemplate;
import cn.tedu.ximart.server.pojo.vo.AttributeTemplateListItemVO;
import cn.tedu.ximart.server.repo.IAttributeTemplateRepository;
import cn.tedu.ximart.server.service.IAttributeTemplateService;
import cn.tedu.ximart.server.web.ServiceCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Slf4j
@Service
public class AttributeTemplateServiceImpl implements IAttributeTemplateService {

    @Autowired
    AttributeTemplateMapper mapper;

    @Autowired
    IAttributeTemplateRepository repository;


    @Override
    public void addNew(AttributeTemplateAddNewDTO attributeTemplateAddNewDTO) {
        log.debug("准备开始处理添加属性模板的业务，参数为：{}",attributeTemplateAddNewDTO);

        String name = attributeTemplateAddNewDTO.getName();
        int count = mapper.countByName(name);
        if(count>0){
            throw new RuntimeException("增加属性模板失败，属性模板名称【"+name+"】已经被占用");
        }

        AttributeTemplate attributeTemplate = new AttributeTemplate();
        BeanUtils.copyProperties(attributeTemplateAddNewDTO,attributeTemplate);
        mapper.insert(attributeTemplate);
    }

    @Override
    public void deleteById(Long id) {
        int rows = mapper.deleteById(id);
        if(rows !=1 ){
            String message = "删除属性模板失败，属性模板id为"+id+"的数据未找到";
            throw new ServiceException(ServiceCode.ERR_NOT_FOUND,message);
        }
    }

    @Override
    public List<AttributeTemplateListItemVO> list() {
        return null;
    }


}
